﻿using System.Collections.Generic;
using Cesave.Domain.Core;
using Cesave.Domain.PermisosModule.Entities;

namespace Cesave.Domain.PermisosModule.Contracts.Distritos
{
	/// <summary>
	/// 
	/// </summary>
	public interface IDistritoRepository
		: IRepositoryEx<Distrito>
	{
		/// <summary>
		/// 
		/// </summary>
		/// <param name="distritosByEstadoSpecification"></param>
		/// <returns></returns>
		IEnumerable<Distrito> FindDistritosByEstadoSpecification(DistritosByEstadoSpecification distritosByEstadoSpecification);

		/// <summary>
		/// 
		/// </summary>
		/// <param name="distritosByEstadoSpecification"></param>
		/// <param name="distritosByStatusSpecification"></param>
		/// <returns></returns>
		IEnumerable<Distrito> FindDistritosByEstadoAndStatusSpecification(DistritosByEstadoSpecification distritosByEstadoSpecification, DistritosByStatusSpecification distritosByStatusSpecification);

		/// <summary>
		/// 
		/// </summary>
		/// <param name="distritoByIdSpecification"></param>
		/// <returns></returns>
		Distrito FindDistritoByGuidSpecification(DistritoByGuidSpecification distritoByGuidSpecification);

	}
}
